package dawn.jxufe.community.event;

import com.alibaba.fastjson.JSONObject;
import dawn.jxufe.community.entity.Event;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;

/**
 * @author dawn21
 * @version 1.0
 * @date 2022/8/17 20:51
 * @component 事件生产者。需要主动调用。
 */

@Component
public class EventProducer {

    @Resource
    private KafkaTemplate kafkaTemplate;

    // 生产者提供发送消息的方法。也就是处理事件的方法。
    public void fireEvent(Event event) {
        // 将事件发布到指定的主题。主题，事件所有的数据。
        // 发送了一个消息个主题，消息是一个事件的所有数据，消息名字转为了JSON，要用时转回来就行。
        kafkaTemplate.send(event.getTopic(), JSONObject.toJSONString(event));
    }


}
